package com.papers.juan.domain.bo;

import com.papers.common.core.validate.AddGroup;
import com.papers.common.core.validate.EditGroup;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 组卷业务对象 t_juan_generate
 *
 * @author papers
 * @date 2022-10-08
 */

@Data
public class TJuanGenerateBo {

    /**
     * 组卷id
     */
    private String generateId;

    /**
     * 题库id
     */
    private String reposId;

    /**
     * 院系id
     */
    private String departId;

    /**
     * 专业
     */
    private String majorId;

    /**
     * 课程id
     */
    private String courseId;

    /**
     * 类型
     */
    private String generateType;

    /**
     * 题型
     */
    private String generateQuestionType;

    /**
     * 题数
     */
    private String generateQuestionNum;
    /**
     * 份数
     */
    @NotNull(message = "份数不能为空", groups = {AddGroup.class, EditGroup.class})
    private Integer generateNum;
    /**
     * 试卷名称
     */
    @NotNull(message = "试卷名称不能为空", groups = {AddGroup.class, EditGroup.class})
    private String paperName;
    /**
     * 是否有密封线
     */
    @NotNull(message = "是否有密封线不能为空", groups = {AddGroup.class, EditGroup.class})
    private String paperSealLine;
    /**
     * 考试时长
     */
    @NotNull(message = "考试时长不能为空", groups = {AddGroup.class, EditGroup.class})
    private Integer paperTime;
    /**
     * 注意事项
     */
    private String paperAttention;
    /**
     * 规则
     */
//    @NotBlank(message = "规则不能为空", groups = {AddGroup.class, EditGroup.class})
    private String generateRule;

    /**
     * 试卷总分
     */
    @NotNull(message = "试卷总分不能为空", groups = {AddGroup.class, EditGroup.class})
    private Integer paperTotalScore;

    /**
     * 难度系数
     */
    @NotNull(message = "难度系数不能为空", groups = {AddGroup.class, EditGroup.class})
    private BigDecimal generateEasy;

    /**
     * 重复率
     */
    @NotNull(message = "重复率不能为空", groups = {AddGroup.class, EditGroup.class})
    private BigDecimal generateRepeat;

    /**
     * 范围类型（1章节选题/2知识点选题/3试卷选题）
     */
    @NotNull(message = "范围类型不能为空", groups = {AddGroup.class, EditGroup.class})
    private String generateScopeType;

    /**
     * 范围
     */
    private String generateScope;

    /**
     * 用户名
     */
    private String userName;

    /**
     * 院系名称
     */
    private String departName;

    /**
     * 专业名称
     */
    private String majorName;

    /**
     * 课程名称
     */
    private String courseSubject;

    /**
     * 创建人
     */
    private String createdBy;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date createdTime;

    /**
     * 更新人
     */
    private String updatedBy;

    /**
     * 更新时间
     */
    private Date updatedTime;

}
